package v1

import (
	"hr/api/dto"
	"hr/db"
	"hr/utils"

	"github.com/gin-gonic/gin"
)

// GetOptions
// @Summary 获取配置列表
// @Tags 系统配置相关api
// @Accept  json
// @Produce json
// @Param Access-Token header string true "Authentication header"
// @Success 200 {object} utils.JsonContent
// @Failure 400 {object} utils.JsonContent
// @Failure 500 {object} utils.JsonContent
// @Router /api/v1/auth/options [get]
func GetOptions(c *gin.Context) {
	d := db.GetOptions()
	utils.EchoSuccess(c, d, "请求成功")
}

// GetOptionsByCode
// @Summary 获取配置
// @Tags 系统配置相关api
// @Accept  json
// @Produce json
// @Param Access-Token header string true "Authentication header"
// @Param code path string true "编码 invite_bg:邀请背景图片"
// @Success 200 {object} utils.JsonContent
// @Failure 400 {object} utils.JsonContent
// @Failure 500 {object} utils.JsonContent
// @Router /api/v1/auth/options/{code} [get]
func GetOptionsByCode(c *gin.Context) {
	code := c.Param("code")
	if utils.IsStringEmpty(code) {
		utils.EchoError(c, "缺少code")
		return
	}
	data := db.GetOptionsByCode(code)
	utils.EchoSuccess(c, data, "获取成功")
}

// UpdateOptions
// @Summary 更新配置
// @Tags 系统配置相关api
// @Accept  json
// @Produce json
// @Param Access-Token header string true "Authentication header"
// @Param RoleRequest body dto.OptionsRequest true "信息"
// @Success 200 {object} utils.JsonContent
// @Failure 400 {object} utils.JsonContent
// @Failure 500 {object} utils.JsonContent
// @Router /api/v1/auth/options/update [post]
func UpdateOptions(c *gin.Context) {
	p := &dto.OptionsRequest{}
	if err := c.ShouldBindJSON(p); err != nil {
		utils.EchoError(c, "缺少必要参数信息")
		return
	}

	db.UpdateOptions(p.Code, p.Text)
	utils.EchoSuccess(c, nil, "更新成功")
}
